package slave;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Hashtable;

/**
 * Questa classe ha il compito di controllare lo stato dei Thread
 * SessionStreamManager;
 * Ogni periodo T viene eseguito un controllo sui client presenti come attivi
 * nel file gateway.xml di ogni nodo, richiamandono i Thread di trasmissione e verificandone
 * lo stato.
 * @author alex
 */
public class SlaveStreamProviderClientsActivityController extends Thread {

	SlaveStreamProvider sm;
	Hashtable<String,Thread> ht;//Tabella con i Thread di trasmissione attivi
	int t;//Frequenza del controllo
	public boolean start= true;

	public SlaveStreamProviderClientsActivityController(SlaveStreamProvider sm,Hashtable<String,Thread> ht, int t){
		this.sm=sm;
		this.ht=ht;	
		this.t=t;
	}	

	public void run(){
		while(start){
			Enumeration<String> clients = ht.keys();	
			for (int i =0;i<ht.size();i++){
				String clientToCheck = clients.nextElement();
				sm.checkClientActivity(clientToCheck);
			}	
			//Attendo	
			try {
				Thread.sleep(t);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}	
		}

	}

	public static void main (String args[]) throws IOException {
	}
}
